home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / debug / test-generic.scm < prev    next >
Text File  |  1995-10-13  |  666b  |  35 lines

  1. ; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.
  2.  
  3.  
  4. (define g-methods (make-method-table 'g))
  5.  
  6. (define g (make-generic g-methods))
  7.  
  8. (define foo-family (make-family 'foo 1))
  9.  
  10. (define-method g-methods foo-family
  11.   (lambda (x)
  12.     (if (even? x)
  13.     'win
  14.     (fail))))
  15.  
  16. (define bar-family (make-family 'bar 2))  ;More specific
  17.  
  18. (define-method g-methods bar-family
  19.   (lambda (x)
  20.     (case x
  21.       ((1 3 5) 'ok)
  22.       (else (fail)))))
  23.  
  24. (define-method g-methods (make-family 'baz 2)  ;Same priority as bar-family
  25.   (lambda (x)
  26.     (case x
  27.       ((3) 'great)
  28.       (else (fail)))))
  29.  
  30. ; (g 0) => 'win
  31. ; (g 1) => 'ok
  32. ; (g 3) => 'great
  33. ; (g 9) => error
  34.  
  35.